package com.renyi.model;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.dao.DataAccessException;

/**
 * Mybatis 数据库操作接口 MybatisRepository.java Create on 2014-4-29
 * @author dasuan
 */
public interface MybatisRepositoryDoctor {
	/**
	 * 查询记录
	 * @author dasuan
	 * @version 1.0
	 * @param statement ,执行的语句名称
	 * @return List<HashMap<String, String>>
	 */
	public List<HashMap<String, String>> findMybatisList(String statement);

	/**
	 * 查询记录
	 * @author dasuan
	 * @version 1.0
	 * @param statement ,执行的语句名称
	 * @param parameter ,参数Map
	 * @return List<Object>
	 */
	public List<String> findMybatisString(String statement, Map<String, Object> parameter);
	
	/**
	 * 查询记录总数
	 * 
	 * @param querySqlName ,执行的语句名称
	 * @param paramsMap ,参数Map
	 * @return Long,记录数
	 */
	public Long findIbatisListCount(String querySqlName, Map<String, Object> paramsMap);
 

	/**
	 * 插入记录
	 * 
	 * @param insertqlName ,执行的语句名称
	 * @param paramsMap ,参数Map
	 * @return int,影响记录数
	 */
	public Object insertIbatisObject(String insertSqlName, Map<String, Object> paramsMap);


	/**
	 * 插入记录
	 * 
	 * @param insertqlName ,执行的语句名称
	 * @param paramsMap ,参数Map
	 * @return int,影响记录数
	 */
	public Object insertIbatisObject(String insertSqlName, Object object);
	
	/**
	 * 批量插入记录
	 * 
	 * @param insertqlName ,执行的语句名称
	 * @param paramsMap ,参数Map
	 * @return int,影响记录数 
	 */
	public Object batchIbatisObject(String insertSqlName,  List<Map<String, Object>> paramsMapList);
	
	/**
	 * 更新记录
	 * 
	 * @param updateSqlName ,执行的语句名称
	 * @param paramsMap ,参数Map
	 * @return int,影响记录数
	 */
	public int updateIbatisObject(String updateSqlName, Map<String, Object> paramsMap); 

	 
	/**
	 * 删除记录
	 * 
	 * @param deleteSqlName ,执行的语句名称
	 * @param paramsMap ,参数Map
	 * @return int,影响记录数
	 */
	public int deleteIbatisObject(String deleteSqlName, Map<String, Object> paramsMap);
	
	/**
	 * zzf 
	 * 调用存储过程
	 * @param statement
	 * @param paramsMap
	 * @return
	 */
	public List<HashMap<String, Object>> procedureMybatisList(String statement,Map<String, Object> paramsMap);
	
	
	public List<HashMap<String, Object>> findMybatisList(String statement,Map<String, Object> paramsMap);
	
	public List<HashMap<String, Object>> getMybatisList(String statement,Map<String, Object> paramsMap);
	
}
